//
//  CQHorizontalView.h
//  Pods
//
//  Created by 陈长青 on 2017/4/4.
//
//

#import <UIKit/UIKit.h>
#import "CQVideoPlayer.h"

typedef void(^CQSingleClick)();

typedef void(^CQLongPressClick)();

////////////////////////////////////////////////////////////////
// MARK: - 水平子视图协议
////////////////////////////////////////////////////////////////

@protocol CQNavigationBarProtocol;
@protocol CQToolBarProtocol;
@protocol CQContentViewProtocol;

@protocol CQHorizontalViewCellProtocol<NSObject>

@required

// 文本

@property (weak, nonatomic, readonly) UILabel *textLabel;

// 重用id

@property (nonatomic, readonly, copy) NSString *reuseIdentifier;

// 初始化

- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier;

// 当前视图所在的索引

@property (nonatomic, assign) NSInteger index;

// 底栏

@property (nonatomic, strong) UIView<CQToolBarProtocol> *toolBar;

// 导航栏

@property (nonatomic, strong) UIView<CQNavigationBarProtocol> *navigationBar;

// 内容视图

@property (nonatomic, strong) UIView<CQContentViewProtocol> *contentView;

@end

////////////////////////////////////////////////////////////////
// MARK: - 内容视图协议
////////////////////////////////////////////////////////////////

@protocol CQContentViewProtocol <NSObject>

@required

// cell

@property (weak, nonatomic) id<CQHorizontalViewCellProtocol> cell;

@end

////////////////////////////////////////////////////////////////
// MARK: - 导航视图协议
////////////////////////////////////////////////////////////////

@protocol CQNavigationBarProtocol <NSObject>

@required

// cell

@property (weak, nonatomic) id<CQHorizontalViewCellProtocol> cell;

@end

////////////////////////////////////////////////////////////////
// MARK: - 底栏视图协议
////////////////////////////////////////////////////////////////

@protocol CQToolBarProtocol <NSObject>

@required

// cell

@property (weak, nonatomic) id<CQHorizontalViewCellProtocol> cell;

// 是否正在滑动

@property (assign) BOOL scrubbing;

//更新播放进度

-(void)setCurrentTime:(NSTimeInterval)time duration:(NSTimeInterval)duration;

//处理播放完成

-(void)playbackComplete;

//处理播放暂停

-(void)setToPlaying:(BOOL) isPlaying;

@end

////////////////////////////////////////////////////////////////
// MARK: - 水平视图浏览器数据源
////////////////////////////////////////////////////////////////


@class CQHorizontalView;
@protocol CQHorizontalViewDataSource <NSObject>

@required

// 子视图个数

- (NSInteger)numberOfCellsInHorizontalView:(CQHorizontalView *)horizontalView;

// 子视图

- (UIView<CQHorizontalViewCellProtocol> *)horizontalView:(CQHorizontalView *)horizontalView cellForIndex:(NSInteger)index;

// 控件宽

- (CGFloat)widthForHorizontalView:(CQHorizontalView *)horizontalView;

@end

////////////////////////////////////////////////////////////////
// MARK: - 水平视图浏览器
////////////////////////////////////////////////////////////////

@interface CQHorizontalView : UIView

// 当前cell

@property (weak, nonatomic, readonly) id<CQHorizontalViewCellProtocol> currentCell;

// 当前页数

@property (nonatomic, assign) NSInteger currentPage;

// 数据源

@property (nonatomic, weak) id<CQHorizontalViewDataSource> dataSource;

// 得到可复用视图

- (UIView<CQHorizontalViewCellProtocol> *)dequeueReusableCellWithIdentifier:(NSString *)identifier;

// 刷新

- (void)reloadData;

// 显示

- (void)show;

// 消失

- (void)hide;

// 单击

@property (strong, nonatomic) CQSingleClick singleClick;

// 长按

@property (strong, nonatomic) CQLongPressClick longPressClick;

@end
